home *** CD-ROM | disk | FTP | other *** search
EPOC OPL Source | 2002-06-30 | 10.7 KB | 535 lines |
-
-
- PROC findcombinations:
- LOCAL i%, j%, found%, ff%, att%, chk%(10)
- GLOBAL ingr$(71,19), attr$(68,21), ingrattr%(284)
-
- ingr$(1)="Alit Hide"
- ingr$(2)="Ampoule Pod"
- ingr$(3)="Ash Salts"
- ingr$(4)="Ash Yam"
- ingr$(5)="Bittergreen Petals"
- ingr$(6)="Black Anther"
- ingr$(7)="Black Lichen"
- ingr$(8)="Bloat"
- ingr$(9)="Bonemeal"
- ingr$(10)="Bungler's Bane"
- ingr$(11)="Chokeweed"
- ingr$(12)="Coda Flower"
- ingr$(13)="Comberry"
- ingr$(14)="Corkbulb Root"
- ingr$(15)="Corprus Weepings"
- ingr$(16)="Corprusmeat"
- ingr$(17)="Crab Meat"
- ingr$(18)="Deadra Skin"
- ingr$(19)="Deadra's Heart"
- ingr$(20)="Diamond"
- ingr$(21)="Dreugh Wax"
- ingr$(22)="Ectoplasm"
- ingr$(23)="Emerald"
- ingr$(24)="Fire Petal"
- ingr$(25)="Fire Salts"
- ingr$(26)="Frost Salts"
- ingr$(27)="Ghoul Heart"
- ingr$(28)="Gold Kanet"
- ingr$(29)="Gravedust"
- ingr$(30)="Green Lichen"
- ingr$(31)="Guar Hide"
- ingr$(32)="Hackle-lo Leaf"
- ingr$(33)="Heather"
- ingr$(34)="Hound Meat"
- ingr$(35)="Hypha Facia"
- ingr$(36)="Kagouti Hide"
- ingr$(37)="Kresh Fiber"
- ingr$(38)="Kwama Cuttle"
- ingr$(39)="Large Kwama Egg"
- ingr$(40)="Luminous Russula"
- ingr$(41)="Marshmerrow"
- ingr$(42)="Moon Sugar"
- ingr$(43)="Muck"
- ingr$(44)="Netch Leather"
- ingr$(45)="Pearl"
- ingr$(46)="Racer Plumes"
- ingr$(47)="Rat Meat"
- ingr$(48)="Raw Ebony"
- ingr$(49)="Raw Glass"
- ingr$(50)="Red Lichen"
- ingr$(51)="Resin"
- ingr$(52)="Roobrush"
- ingr$(53)="Ruby"
- ingr$(54)="Saltrice"
- ingr$(55)="Scales"
- ingr$(56)="Scamp Skin"
- ingr$(57)="Scathecraw"
- ingr$(58)="Scrap Metal"
- ingr$(59)="Scrib Jelly"
- ingr$(60)="Scrib Jerky"
- ingr$(61)="Scuttle"
- ingr$(62)="Shalk Resin"
- ingr$(63)="Sload Soap"
- ingr$(64)="Spore Pod"
- ingr$(65)="Stoneflower Petals"
- ingr$(66)="Trama Root"
- ingr$(67)="Vampire Dust"
- ingr$(68)="Violet Corprinus"
- ingr$(69)="Void Salts"
- ingr$(70)="Wickwheat"
- ingr$(71)="Willow Anther"
- attr$(1)="Burden"
- attr$(2)="Cure Blight Disease"
- attr$(3)="Cure Common Disease"
- attr$(4)="Cure Paralyzation"
- attr$(5)="Cure Poison"
- attr$(6)="Detect Animal"
- attr$(7)="Detect Enchantment"
- attr$(8)="Detect Key"
- attr$(9)="Dispel"
- attr$(10)="Drain Agility"
- attr$(11)="Drain Endurance"
- attr$(12)="Drain Fatigue"
- attr$(13)="Drain Health"
- attr$(14)="Drain Intelligence"
- attr$(15)="Drain Luck"
- attr$(16)="Drain Magicka"
- attr$(17)="Drain Personality"
- attr$(18)="Drain Speed"
- attr$(19)="Drain Strength"
- attr$(20)="Drain Willpower"
- attr$(21)="Feather"
- attr$(22)="Fire Shield"
- attr$(23)="Fortify Agility"
- attr$(24)="Fortify Endurance"
- attr$(25)="Fortify Fatigue"
- attr$(26)="Fortify Health"
- attr$(27)="Fortify Intelligence"
- attr$(28)="Fortify Luck"
- attr$(29)="Fortify Magicka"
- attr$(30)="Fortify Personality"
- attr$(31)="Fortify Speed"
- attr$(32)="Fortify Strength"
- attr$(33)="Fortify Willpower"
- attr$(34)="Frost Shield"
- attr$(35)="Invisibility"
- attr$(36)="Levitate"
- attr$(37)="Light"
- attr$(38)="Lightning Shield"
- attr$(39)="Night-Eye"
- attr$(40)="Paralyze"
- attr$(41)="Poison"
- attr$(42)="Reflect"
- attr$(43)="Resist Common Disease"
- attr$(44)="Resist Fire"
- attr$(45)="Resist Frost"
- attr$(46)="Resist Magicka"
- attr$(47)="Resist Poison"
- attr$(48)="Resist Shock"
- attr$(49)="Restore Agility"
- attr$(50)="Restore Endurance"
- attr$(51)="Restore Fatigue"
- attr$(52)="Restore Health"
- attr$(53)="Restore Intelligence"
- attr$(54)="Restore Luck"
- attr$(55)="Restore Magicka"
- attr$(56)="Restore Personality"
- attr$(57)="Restore Speed"
- attr$(58)="Restore Strength"
- attr$(59)="Restore Willpower"
- attr$(60)="Spell Absorbtion"
- attr$(61)="Swift Swim"
- attr$(62)="Telekinesis"
- attr$(63)="Vampirism"
- attr$(64)="Water Breathing"
- attr$(65)="Water Walking"
- ingrattr%(1)=14
- ingrattr%(2)=47
- ingrattr%(3)=62
- ingrattr%(4)=6
- ingrattr%(5)=65
- ingrattr%(6)=40
- ingrattr%(7)=6
- ingrattr%(8)=20
- ingrattr%(9)=10
- ingrattr%(10)=46
- ingrattr%(11)=2
- ingrattr%(12)=46
- ingrattr%(13)=27
- ingrattr%(14)=32
- ingrattr%(15)=43
- ingrattr%(16)=8
- ingrattr%(17)=53
- ingrattr%(18)=35
- ingrattr%(19)=11
- ingrattr%(20)=16
- ingrattr%(21)=10
- ingrattr%(22)=44
- ingrattr%(23)=11
- ingrattr%(24)=37
- ingrattr%(25)=19
- ingrattr%(26)=45
- ingrattr%(27)=18
- ingrattr%(28)=5
- ingrattr%(29)=16
- ingrattr%(30)=27
- ingrattr%(31)=33
- ingrattr%(32)=6
- ingrattr%(33)=49
- ingrattr%(34)=62
- ingrattr%(35)=12
- ingrattr%(36)=17
- ingrattr%(37)=18
- ingrattr%(38)=11
- ingrattr%(39)=9
- ingrattr%(40)=19
- ingrattr%(41)=15
- ingrattr%(42)=51
- ingrattr%(43)=3
- ingrattr%(44)=20
- ingrattr%(45)=17
- ingrattr%(46)=36
- ingrattr%(47)=14
- ingrattr%(48)=13
- ingrattr%(49)=12
- ingrattr%(50)=55
- ingrattr%(51)=22
- ingrattr%(52)=42
- ingrattr%(53)=4
- ingrattr%(54)=52
- ingrattr%(55)=38
- ingrattr%(56)=28
- ingrattr%(57)=12
- ingrattr%(58)=28
- ingrattr%(59)=20
- ingrattr%(60)=52
- ingrattr%(61)=12
- ingrattr%(62)=13
- ingrattr%(63)=16
- ingrattr%(64)=0
- ingrattr%(65)=51
- ingrattr%(66)=48
- ingrattr%(67)=38
- ingrattr%(68)=54
- ingrattr%(69)=32
- ingrattr%(70)=3
- ingrattr%(71)=40
- ingrattr%(72)=61
- ingrattr%(73)=55
- ingrattr%(74)=24
- ingrattr%(75)=10
- ingrattr%(76)=39
- ingrattr%(77)=10
- ingrattr%(78)=35
- ingrattr%(79)=42
- ingrattr%(80)=8
- ingrattr%(81)=32
- ingrattr%(82)=58
- ingrattr%(83)=15
- ingrattr%(84)=20
- ingrattr%(85)=23
- ingrattr%(86)=6
- ingrattr%(87)=19
- ingrattr%(88)=13
- ingrattr%(89)=29
- ingrattr%(90)=52
- ingrattr%(91)=10
- ingrattr%(92)=11
- ingrattr%(93)=44
- ingrattr%(94)=13
- ingrattr%(95)=60
- ingrattr%(96)=40
- ingrattr%(97)=13
- ingrattr%(98)=23
- ingrattr%(99)=45
- ingrattr%(100)=22
- ingrattr%(101)=18
- ingrattr%(102)=55
- ingrattr%(103)=34
- ingrattr%(104)=44
- ingrattr%(105)=40
- ingrattr%(106)=5
- ingrattr%(107)=23
- ingrattr%(108)=0
- ingrattr%(109)=13
- ingrattr%(110)=1
- ingrattr%(111)=15
- ingrattr%(112)=58
- ingrattr%(113)=14
- ingrattr%(114)=3
- ingrattr%(115)=16
- ingrattr%(116)=50
- ingrattr%(117)=30
- ingrattr%(118)=3
- ingrattr%(119)=19
- ingrattr%(120)=13
- ingrattr%(121)=12
- ingrattr%(122)=24
- ingrattr%(123)=56
- ingrattr%(124)=28
- ingrattr%(125)=51
- ingrattr%(126)=40
- ingrattr%(127)=64
- ingrattr%(128)=54
- ingrattr%(129)=56
- ingrattr%(130)=21
- ingrattr%(131)=18
- ingrattr%(132)=17
- ingrattr%(133)=51
- ingrattr%(134)=25
- ingrattr%(135)=42
- ingrattr%(136)=7
- ingrattr%(137)=15
- ingrattr%(138)=10
- ingrattr%(139)=12
- ingrattr%(140)=7
- ingrattr%(141)=12
- ingrattr%(142)=31
- ingrattr%(143)=43
- ingrattr%(144)=39
- ingrattr%(145)=54
- ingrattr%(146)=30
- ingrattr%(147)=16
- ingrattr%(148)=18
- ingrattr%(149)=47
- ingrattr%(150)=12
- ingrattr%(151)=65
- ingrattr%(152)=64
- ingrattr%(153)=51
- ingrattr%(154)=40
- ingrattr%(155)=34
- ingrattr%(156)=26
- ingrattr%(157)=64
- ingrattr%(158)=12
- ingrattr%(159)=41
- ingrattr%(160)=0
- ingrattr%(161)=52
- ingrattr%(162)=7
- ingrattr%(163)=20
- ingrattr%(164)=12
- ingrattr%(165)=31
- ingrattr%(166)=9
- ingrattr%(167)=11
- ingrattr%(168)=15
- ingrattr%(169)=14
- ingrattr%(170)=8
- ingrattr%(171)=17
- ingrattr%(172)=3
- ingrattr%(173)=24
- ingrattr%(174)=27
- ingrattr%(175)=17
- ingrattr%(176)=4
- ingrattr%(177)=10
- ingrattr%(178)=9
- ingrattr%(179)=64
- ingrattr%(180)=43
- ingrattr%(181)=20
- ingrattr%(182)=36
- ingrattr%(183)=0
- ingrattr%(184)=0
- ingrattr%(185)=16
- ingrattr%(186)=40
- ingrattr%(187)=5
- ingrattr%(188)=47
- ingrattr%(189)=10
- ingrattr%(190)=5
- ingrattr%(191)=34
- ingrattr%(192)=57
- ingrattr%(193)=14
- ingrattr%(194)=19
- ingrattr%(195)=18
- ingrattr%(196)=22
- ingrattr%(197)=18
- ingrattr%(198)=37
- ingrattr%(199)=3
- ingrattr%(200)=16
- ingrattr%(201)=52
- ingrattr%(202)=57
- ingrattr%(203)=1
- ingrattr%(204)=43
- ingrattr%(205)=20
- ingrattr%(206)=23
- ingrattr%(207)=13
- ingrattr%(208)=5
- ingrattr%(209)=13
- ingrattr%(210)=21
- ingrattr%(211)=53
- ingrattr%(212)=10
- ingrattr%(213)=51
- ingrattr%(214)=29
- ingrattr%(215)=19
- ingrattr%(216)=52
- ingrattr%(217)=17
- ingrattr%(218)=65
- ingrattr%(219)=50
- ingrattr%(220)=61
- ingrattr%(221)=16
- ingrattr%(222)=4
- ingrattr%(223)=56
- ingrattr%(224)=58
- ingrattr%(225)=19
- ingrattr%(226)=5
- ingrattr%(227)=13
- ingrattr%(228)=59
- ingrattr%(229)=13
- ingrattr%(230)=38
- ingrattr%(231)=48
- ingrattr%(232)=53
- ingrattr%(233)=33
- ingrattr%(234)=5
- ingrattr%(235)=2
- ingrattr%(236)=59
- ingrattr%(237)=51
- ingrattr%(238)=25
- ingrattr%(239)=1
- ingrattr%(240)=61
- ingrattr%(241)=51
- ingrattr%(242)=25
- ingrattr%(243)=21
- ingrattr%(244)=62
- ingrattr%(245)=12
- ingrattr%(246)=26
- ingrattr%(247)=17
- ingrattr%(248)=31
- ingrattr%(249)=17
- ingrattr%(250)=23
- ingrattr%(251)=22
- ingrattr%(252)=49
- ingrattr%(253)=19
- ingrattr%(254)=12
- ingrattr%(255)=8
- ingrattr%(256)=40
- ingrattr%(257)=58
- ingrattr%(258)=29
- ingrattr%(259)=15
- ingrattr%(260)=30
- ingrattr%(261)=59
- ingrattr%(262)=36
- ingrattr%(263)=16
- ingrattr%(264)=18
- ingrattr%(265)=26
- ingrattr%(266)=32
- ingrattr%(267)=60
- ingrattr%(268)=63
- ingrattr%(269)=65
- ingrattr%(270)=12
- ingrattr%(271)=41
- ingrattr%(272)=0
- ingrattr%(273)=55
- ingrattr%(274)=60
- ingrattr%(275)=40
- ingrattr%(276)=11
- ingrattr%(277)=52
- ingrattr%(278)=33
- ingrattr%(279)=40
- ingrattr%(280)=14
- ingrattr%(281)=17
- ingrattr%(282)=34
- ingrattr%(283)=3
- ingrattr%(284)=4
-
- again::
- dINIT "select ingredients",16+2
- i%=0
- DO
- i%=i%+1
- dCHOICE chk%(i%),"ingr "+NUM$(i%,3),ingr$(1)+",..."
- j%=1
- DO
- j%=j%+1
- dCHOICE chk%(i%),"",ingr$(j%)+",..."
- UNTIL j%>=71
- chk%(i%)=72
- dCHOICE chk%(i%),"","-None-"
- UNTIL i%>=9
- dCHOICE chk%(10),"attr ",attr$(1)+",..."
- j%=1
- DO
- j%=j%+1
- dCHOICE chk%(10),"",attr$(j%)+",..."
- UNTIL j%>=65
- chk%(10)=66
- dCHOICE chk%(10),"","-None-"
- IF DIALOG
- CLS
- found%=0
- i%=0
- DO
- i%=i%+1
- j%=i%
- DO
- j%=j%+1
- IF (chk%(i%)<72) AND (chk%(j%)<72)
- rem have two non-empty input lines
- found%=found%+matchattr%:(chk%(i%),chk%(j%))
- ENDIF
- UNTIL j%>=9
- UNTIL i%>=8
- IF (found%<1)
- rem no results - search all for 1st ingredient
- IF (chk%(1)=72)
- IF chk%(10)=66
- PRINT "Select at least one ingredient or attribute or press Esc to exit"
- ELSE
- Print attr$(chk%(10)),"=";
- i%=0
- DO
- i%=i%+1
- findattr%:(i%,chk%(10))
- UNTIL (i%>=71)
- ENDIF
- ELSE
- found%=0
- i%=0
- DO
- i%=i%+1
- IF i%<>chk%(1)
- ff%=found%
- found%=found%+matchattr%:(chk%(1),i%)
- IF ((found%>=20) AND (ff%<20)) OR ((found%>=40) AND (ff%<40))
- PRINT "<Press any key to continue, Esc to exit>"
- IF GET=27
- GOTO again::
- ENDIF
- ENDIF
- ENDIF
- UNTIL (i%>=71)
- ENDIF
- ENDIF
- IF GET<>27
- GOTO again::
- ENDIF
- ENDIF
- ENDP
-
- PROC matchattr%:(a%,b%)
- LOCAL i%, j%, f%
- i%=1
- f%=0
- DO
- j%=1
- DO
- IF (ingrattr%((a%-1)*4+i%)<>0) AND (ingrattr%((a%-1)*4+i%)=ingrattr%((b%-1)*4+j%))
- PRINT ingr$(a%),"+",ingr$(b%),"=",attr$(ingrattr%((a%-1)*4+i%))
- f%=f%+1
- ENDIF
- j%=j%+1
- UNTIL j%>=5
- i%=i%+1
- UNTIL i%>=5
- RETURN f%
- ENDP
-
- PROC findattr%:(ind%,a%)
- LOCAL i%, f%
- i%=1
- f%=0
- DO
- IF (ingrattr%((ind%-1)*4+i%)=a%)
- PRINT ingr$(ind%),", ";
- f%=f%+1
- ENDIF
- i%=i%+1
- UNTIL i%>=5
- RETURN f%
- ENDP
-
-
-